package editorsvg.propiedades;

import java.awt.geom.Point2D;
import javax.swing.JComponent;

/**
 * Propiedad que contiene un objeto Double.
 *
 * @author Jorge Berjano
 */
@Deprecated
public class PropiedadPunto extends Propiedad {
    
//    public PropiedadPunto(Object objeto, String nombre, String titulao) {
//        super(objeto, nombre, nombreXml, titulo);
//    }
        
    public String toString() {
       Point2D.Double punto = obtenerPunto();
       if (punto == null) {
           return "";
       } else {
           return "" + punto.x + "," + punto.y;
       }
    }  
    
    @Override
    public Class getClase() {
        return Point2D.Double.class;
    }
        
    public Point2D.Double obtenerPunto() {
        Object valor = getValor();
        if (valor instanceof Point2D.Double)
            return (Point2D.Double) valor;
        else
            return null;
    }

    public JComponent obtenerComponenteModificacion() {
//        if (getMaximo() <= getMinimo()) 
//            return null;
//        
//        if (slider == null) {
//            slider = new JSlider((int) (getMinimo() * 100), (int) (getMaximo() * 100));
//            int v = (int) obtenerNumeroReal();
//            slider.setValue(v);
//            slider.addChangeListener(new ChangeListener() {
//                public void stateChanged(ChangeEvent evento) {
//                    SliderAccionado();
//                }
//            });
//        }
//        return slider;
        return null;
    }

    @Override
    public boolean permitirEditarTexto() {
        return true;
    }

    @Override
    public boolean parsearPropiedad(String valorString) {
        String[] par = valorString.split(",");
        if (par.length != 2) {
            return false;
        }
        
        try {
            double x = Double.parseDouble(par[0]);
            double y = Double.parseDouble(par[1]);
            setValor(new Point2D.Double(x, y));
            //notificarCambios();
        } catch (NumberFormatException ex) {
            return false;
        }
        
        return true;
    }
}
